ホーム  > X-plus >  XML解説

この記事を印刷する この記事を送る はてなブックマークに追加する
テキストリンクコードを取得する

HTMLの方向性とXMLの位置付け~HTML5の概要と注目機能~

2010年10月01日作成   1page  2page 

第二部:HTML5の注目機能

1.  Webアプリケーションとしてのブラウザ機能の強化

HTMLは単なるWebページの記述言語ではなく、JavaScriptと組み合わせることによりWebブラウザの機能を最大限に引き出すアプリケーション構築の言語となったといえる。ここでは、HTMLのタグレベルの主な注目機能と、ブラウザの機能レベルでの注目機能を概説する。

HTMLのタグレベルでの注目機能には次のものがある。

  • ●canvas[JavaScriptを使ってグラフィックスを描画できるようにする要素]
  • ●audio/video[Flashなどの外部コンポーネントを使用しなくても動画や音声を再生できるようにする要素]
  • ●section/article/nav/header/footer/aside/hgroup[セクションや見出しの構造を明確にしたり、ブログの構造を表現したりするための要素]
  • ● keygen/output/progress/meter/datalist[フォーム関連の機能強化]

    また、ブラウザの機能レベルでの注目機能には次のものがある。

  • ● Web Workers[バックグラウンドでJavaScriptを実行するプロセス]
  • ● Web Storage[クライアント側にJavaScriptオブジェクトを保存する仕組み]
  • ● Web SQL Database[クライアント側の簡易なSQLデータベース]
  • ● Web Sockets[クライアントとサーバー間で双方向の通信を行う仕組み。サーバーからのデータプッシュを可能にする]
  • ● オフラインWebアプリケーション[キャッシュマニフェストを使ってネットワークに接続していなくても使用できるアプリケーションを実現する仕組み]

これらの機能について概観し、その意味を検討する。

2.  タグレベルでの注目機能

2.1  canvas要素とaudio/video要素

canvas要素はFlashや他のコンポーネントを使わなくても、ブラウザの機能を使ってグラフィックスを描画できるようにする要素である。実際の描画指定は、JavaScriptの中で行う。基本的なステップは、次のとおりである。


図1:canvas要素を使って円を描く

1. canvas要素のDOMオブジェクトを取得

2. そのDOMオブジェクトの描画コンテキストを取得

3. 描画コンテキストに、JavaScriptの様々なメソッドを使ってグラフィックスを描く

図1はcanvas要素を使って簡単な円を描いたものである。この図はサンプル1のコードをFirefox3.6.3で表示している。

HTML5が提供するJavaScriptのcanvas関連のAPIを駆使すれば、本格的なグラフィックスを描いたり、対話式のグラフィック処理を実行したりできるようになる。これまで既存のブラウザにFlashなどを組み込んで実現していたものが、JavaScriptのみを使って同等のアプリケーションを作成できるようになる。これはHTML5対応のブラウザさえあれば相互運用が可能になることを意味する。相互運用性の確保という意味でも、canvas要素は大きな意味を持っている。

同じ意味において、audio要素とvideo要素はそれぞれ音声と動画という分野でブラウザ間の相互運用性を高める効果がある。これまでブラウザは外部のプラグインを使用して、音声や動画の再生をしてきたが、HTML5対応のブラウザであれば、プラグインなしで同等の機能を実現できるようになる。

<!doctype html>
<html>
<body>
<h1>canvasに円を描く
<p>
<canvas id="ex1" width="500" height="800"></canvas>
<script type="text/javascript">
// canvas要素(id="ex1")の DOM オブジェクトを取得する
var c = document.getElementById("ex1") ;
// canvasの描画コンテキストを取得する
var cx = c.getContext("2d") ;
// 線を開始する
cx.beginPath();
// x=100, y=80を中心に半径50ピクセルの円を設定する
cx.arc(100, 80, 50, 0, 2 * Math.PI, true);
// 線を描く
cx.stroke();
</script>
</body>
</html>

2.2  セクションの構造を示す要素

HTML5では、セクションの区切りを明確にするための要素が新たに追加されている。それがsection要素である。これまでにも任意のブロックのまとまりを示す要素としてdiv要素があったが、section要素は文書の論理的な構造を明示的に示すという点で用途の違うものである。たとえば、h1で示される見出しとそれに続くさまざまな要素をまとめて一つのセクションとして明示的に区分し、IDで参照できるようにしたい場合、このsection要素を使用できる。

また、HTML5では、ブログ形式を意識した要素も追加されている。article要素はブログの一つの本文記事を示すものである。そして、たとえばnav要素はナビゲーション・メニューを、aside要素はサイド・バーを、header要素はセクションのヘッダー部分を、footer要素はセクションのフッター部分を表すという方法で使用できる(図2参照)。

2.3  フォーム機能を強化する要素や属性

HTML5のもう一つの特徴はフォーム機能の強化である。主なものには次の点がある。

  • ● フォームのinput要素のtype属性の属性値の強化
  • ● オートコンプリート機能
  • ● 入力データの妥当性チェック

input要素のtype属性に指定できるようになった属性値には、日時入力欄を指定する属性値(date、week、month、time、datetime、datetime-local; この場合、カレンダーが表示されたりする)、数字入力欄を指定する属性値(number、range; rangeは数値の範囲を指定する)、色(color; 色を選択するパレットなどが表示される)、電話番号(tel)・URL(url)・電子メール(email)など、フォームで多様な入力フィールドを設定できる。


図2:セクションを構成する要素のイメージ

オートコンプリート機能は、テキストフィールドなどで入力値の候補を表示する機能である。HTML5では、このオートコンプリート機能のon/offを制御したり、入力候補の一覧を制御するdatalist要素(この要素のIDを、input要素のlist属性で指定する)を指定したりすることができる。

入力データのチェックは、これまでサーバー側のCGIやクライアント側のJavaScriptなどで行う必要があったが、定型的な妥当性チェックはinput要素の属性の中で指定できるようになった。たとえば、pattern属性には正規表現を使って妥当な入力値の形式を指定できる。min属性やmax属性で、数値や日時の最小値・最大値を指定できる。maxLength属性を使うと、最大入力文字数の指定ができる。

これ以外にも、タスクの進行状況を示すプログレス・バーを表示するprogress要素、割合などを視覚的に表すmeter要素などがある。またkeygen要素は公開鍵暗号方式のキーペアを作成するときに使用できる。

3.  機能レベルでの注目機能

3.1  WebWorkers

WebWorkersは、Webアプリケーションの効率と生産性を向上させるため、ブラウザのUIを表示するスレッドとは別に、バックグラウンドでJavaScriptを実行するスレッドのことである(図3参照)。このスレッドは、UIやDOMにアクセスできない環境で動作する。たとえば、DBからのデータ取得があったりそもそも時間のかかる計算処理であったりする場合は、その処理をWebWorkerにまかせることにより、ブラウザのレスポンスを向上させることができる。

UIスレッド(通常のブラウザの実行スレッド)とWebWorkerの連携は、JavaScriptの中でpostMessageメソッドを使ってメッセージ(テキストやJavaScriptオブジェクトなど)をやり取りして行う。またWebWorkersの共有も可能である。この場合、そのワーカーは共用ワーカー(SharedWorker)となり、複数のブラウザのプロセスとの間でメッセージのやり取りが可能になる。

HTML5では、UIとバックグラウンド処理の分離により、Webアプリケーションとして本格的な機能拡張が可能になった。

3.2  WebStorageとWeb SQL Database

これまでブラウザ側でデータをある程度の期間に渡って保管するには、クッキー(Cookies)を使用するしかなかった。HTML5では、便利で永続性を持たせたデータをクライアント側に保存できるようになった。それがWebStorageとWeb SQL Databaseである。

WebStorageはデータを識別する任意の文字列であるキーとその値をペアで保存する機能である。WebStorageには、Webサイトのオリジン(例、www.utj.co.jpやseminar.utj.co.jp)ごとに永続的に管理されるローカル・ストレージと、Webページの画面つまりブラウジング・コンテキストごとに管理されるセッション・ストレージがある。それぞれJavaScriptの中で、LocalStorage、SessionStorageというオブジェクトで参照・操作できる。

Web SQL Databaseは名前のとおり、クライント側で稼働する簡易的なSQLDBである。Webブラウザ上でSQLDBを使用するアプリケーションを構築できるようになると、Webアプリケーションで実現できる業務範囲は予想以上に広がると考えられる。

3.3  WebSocketsとオフラインWebアプリケーション

WebSocketsはブラウザとサーバーとの間で、双方向で送受信できる通信のプロトコルである。WebブラウザはWebSocketコンストラクタを使ってサーバーとの通信を確立したなら、HTTPに縛られないシンプルなAPIを使って、サーバーへのメッセージの送信(sendメソッド)やサーバーからのデータプッシュ(onmessageイベントハンドラ)を処理できるようになる。これはAjaxを使ったWebアプリケーションをシンプルにし、またサーバーとの非同期のやり取りによる業務の実現可能性を広げることになる。

オフラインWebアプリケーションは、キャッシュマニュフェストというファイルを使用して、サーバーに接続していない状態でもWebブラウザがWebアプリケーションとして稼動するようにした仕組みである。これもWebブラウザの利用可能性を高めることになる。

このようにHTML5は、タグの機能を強化すると共に、APIレベルでかなりの機能強化を図ることによりJavaScriptを使って実現できることを広げたといえる。

4.  WebアプリケーションとしてのHTMLの将来性

Webアプリケーションは、WebブラウザでJavaScript

を使って構築するアプリケーションである。HTMLで表現されるDOMオブジェクトをJavaScriptで操作するという特徴を持つ。

DOMを構成するオブジェクトの機能強化、WebWorkers・WebSockets・WebStorage・Web SQL Databaseなど、ブラウザに関連する諸機能の追加や強化、またAPIの充実により、Webアプリケーションはさらに充実していくと考えられる。

HTMLは、HTML5により、アプリケーションのプラットホームとしての新たなスタートを切った。HTML5に対応するブラウザが増えていき、HTML5を上手に活用した業務アプリケーションが登場していくことを期待していきたい。

参考文献

  • ● 白石俊平、『HTML5 & API入門』、日経BP社、2010
  • ● 神埼正英、『セマンティックHTML/XHTML』、毎日コミュニケーションズ、2009
  • ● WHATWG(http://www.whatwg.org/)およびそのサイトにあるHTML5関連資料
  • ● W3C(http://www.w3.org/)およびそのサイトにあるHTML5関連資料
  • ● HTML5.JP(http://www.html5.jp/
  • ● Edd Dumbill、「HTMLの将来、パート1:WHATWG」(IBMのdeveloperWorksにある記事)

 1page  2page 

この記事と関連の高い記事

関連キーワード:XML


関連キーワード:巻頭特集




ページトップへ戻る